﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using IndignadoFramework.BackBone.Model;
using IndignadoFramework.DataAccessLayer.EntityModels;
using System.Data.Entity;

namespace IndignadoFramework.BackBone.InternalServices.Implementacion
{
    public class CategoriaTematicaServicesImpl:CategoriaTematicaServices
    {
        public void addCategoriaTematica(CategoriaTematicaModel cat)
        {
            CategoriaTematica categoriaEntity = new CategoriaTematica();

            AutoMapper.Mapper.CreateMap<CategoriaTematicaModel, CategoriaTematica>();
            categoriaEntity = AutoMapper.Mapper.Map(cat, categoriaEntity);

            using (IndignadoFrameworkEntities context = new IndignadoFrameworkEntities())
            {
                context.AddObject("CategoriasTematicas", categoriaEntity);
                context.SaveChanges();
            }
        }

        public string[] getCategoriasTematicas(int movimientoId) {
            IndignadoFrameworkEntities context = new IndignadoFrameworkEntities();
            IQueryable<CategoriaTematica> categorias = from cat in context.CategoriasTematicas where cat.MovimientoId == movimientoId select cat;
            // Contador de Categorias
            int i = 0;
            string[] listaCategorias = new string[categorias.Count()];
            foreach (CategoriaTematica cat in categorias)
            {
                listaCategorias[i] = cat.CategoriaTematicaNombre;
                i++;
            }
            return listaCategorias;
        }
        
        public IEnumerable<CategoriaTematicaModel>  getCategoriasTematicasLista(int movimientoId)
        {
            IndignadoFrameworkEntities context = new IndignadoFrameworkEntities();
            IQueryable<CategoriaTematica> categorias = from cat in context.CategoriasTematicas where cat.MovimientoId == movimientoId select cat;
            List<CategoriaTematicaModel> listaCategorias = new List<CategoriaTematicaModel>();
            AutoMapper.Mapper.CreateMap<CategoriaTematica, CategoriaTematicaModel>();
            foreach (CategoriaTematica cat in categorias)
            {
                CategoriaTematicaModel categoriaEntity = new CategoriaTematicaModel();
                categoriaEntity = AutoMapper.Mapper.Map(cat, categoriaEntity);
                listaCategorias.Add(categoriaEntity);
            }
            return listaCategorias;
        }
    }
}
